import numpy as np  
import pandas as pd  
import tensorflow as tf  
from sklearn.model_selection import train_test_split  
  
# 加载数据  
X = pd.read_csv('data.csv', usecols=[2, 6, 7, 9])  # 特征数据  
y = pd.read_csv('data.csv', usecols=[12])         # 目标数据  
  
# 划分数据集  
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)  
  
# 构建BP神经网络模型  
model = tf.keras.Sequential([  
    tf.keras.layers.Dense(64, activation='relu', input_shape=(4,)),  # 输入层，4个输入特征  
    tf.keras.layers.Dense(64, activation='relu'),                    # 隐藏层，64个神经元  
    tf.keras.layers.Dense(1)                                         # 输出层，1个输出  
])  
  
# 编译模型，使用adam优化器和均方误差损失函数  
model.compile(optimizer='adam', loss='mean_squared_error')  
  
# 训练模型，使用训练集进行训练，并在测试集上进行验证  
model.fit(X_train, y_train, epochs=100, batch_size=32, validation_data=(X_test, y_test))  
  
# 评估模型性能，使用测试集计算损失  
loss = model.evaluate(X_test, y_test)  
print("模型在测试集上的损失:", loss)